package org.tinygroup.flow;

import java.util.List;

import org.tinygroup.flow.config.ComponentDefine;
import org.tinygroup.flow.config.ComponentDefines;

public interface ComponentManager {
	void addComponents(ComponentDefines components);

	void addComponent(ComponentDefine component);

	void removeComponents(ComponentDefines components);

	void removeComponent(ComponentDefine component);

	ComponentDefine getComponentDefine(String componentName);

	List<ComponentDefine> getComponentDefines();

	/**
	 * 根据组件名称获取组件实例
	 * 
	 * @param componentName
	 * @return
	 * @throws Exception
	 */
	ComponentInterface getComponentInstance(String componentName)
			throws Exception;
}
